.equ PERSON_SIZE,76
.section .text
.global FindByName
.type FindByName,@function
FindByName:
	nop
	push %rbp
	mov %rsp,%rbp
	subq $32,%rsp

	mov %rdi,-8(%rbp)   #结构体地址
	mov %rsi,-16(%rbp)	#查找的名字
	movl $0,-20(%rbp)  #i=0
#for i=0;i<c->sz;i++
	jmp 0f
0:
	movl -20(%rbp),%ecx	
	imull $PERSON_SIZE,%ecx #获取堆内存偏移量
	movq -8(%rbp),%rbx
	movq (%rbx),%rax  #获取堆内存首地址	
	leaq 0(%rax,%rcx),%r11 #获取实际堆内存位置
#调用strcmp函数逐一比较名字是否相等
	movq %r11,%rdi
	movq -16(%rbp),%rsi
	mov $0,%rax
	call strcmp
	cmpq $0,%rax
	je 1f
#i++
	incl -20(%rbp)
	movl -20(%rbp),%r10d	
	cmpl 12(%rbx),%r10d  #判断i和c->sz的大小
    jb 0b

	movq $-1,%rax
	leaveq 
	retq
	
1:
	movq -20(%rbp),%rax #返回找到的位置
	leaveq 
	retq
